﻿Public Class AnimationKristall
    Inherits ObjektAnimation
    ''' <summary>
    ''' Führt eine Explosion aus und zerstört die Einheit
    ''' </summary>
    ''' <param name="X"></param>
    ''' <param name="Y"></param>
    ''' <remarks></remarks>
    Public Sub New(ByVal X As Integer, ByVal Y As Integer, ByVal Musikspielen As Boolean, ByVal Schlacht As Integer)
        MyBase.New(Musikspielen, Schlacht)
        P.X = X
        P.Y = Y
        Frames = 6
        BildID = LoadTextur("KristallAnimation", Frames)
        If Musikspielen = True Then
            MusikEngine.LoadWav(My.Settings.Resourcenpfad + "Sound\KristallAnimation.wav", False)
        End If
    End Sub
    Public Overrides Function Malen(ByVal intColor As Color, Optional ByVal Zoomfaktor As Single = 1) As Boolean
        'Welchen Teil des Bildes wir malen wollen
        Dim sngRotation As Double = 0
        Dim T As Textur = Texturen(BildID)
        If FM = True Then
            With Grafikengine.recBild
                .X = T.EinzelbildGröße.Width * Frame : .Width = T.EinzelbildGröße.Width
                .Y = 0 : .Height = T.EinzelbildGröße.Height
            End With
        Else
            With Grafikengine.recBild
                .X = 0 : .Width = T.EinzelbildGröße.Width
                .Y = 0 : .Height = T.EinzelbildGröße.Height
            End With
        End If
        With Grafikengine.ptfRotCenter
            .X = T.EinzelbildGröße.Width / 2 * Zoomfaktor
            .Y = T.EinzelbildGröße.Height / 2 * Zoomfaktor
        End With
        If InFeldern = True Then
            Grafikengine.ptfPosition = New Drawing.Point(Hauptmenü.Feldbreite * P.X + Objektverwalter.Spielfeld.BildschirmKooX, Hauptmenü.Feldbreite * P.Y + Objektverwalter.Spielfeld.BildschirmKooY - Hauptmenü.Feldbreite)
        Else
            Grafikengine.ptfPosition = New Drawing.Point(P.X + Objektverwalter.Spielfeld.BildschirmKooX, P.Y + Objektverwalter.Spielfeld.BildschirmKooY)
        End If
        'Ausschnitte in den Backbuffer zeichnen
        'Wo wird das Bild gezeichnet
        '16 ist die Breite eines Feldes 8 die Hälfte das heißt wir ermitteln den Mittelpunkt des Feldes und ziehen die Hälfte der Größe der Einheit ab
        '... und wie breit ist es
        With Grafikengine.szfScale
            .Height = T.EinzelbildGröße.Height * Zoomfaktor
            .Width = T.EinzelbildGröße.Width * Zoomfaktor
        End With
        'jetzt wird es in den Backbuffer gezeichnet
        Grafikengine.Sprite.Draw2D(T.TexturBild, Grafikengine.recBild, Grafikengine.szfScale, Grafikengine.ptfRotCenter, sngRotation, Grafikengine.ptfPosition, intColor)
        If Frame >= Frames Then
            Return False
        End If

        Frame += 1
        If Frame >= Frames Then
            Frame = Frames
        End If
        Return True
    End Function
End Class
